<html>
<head><meta charset="utf-8"><title>IncA program analysis · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/IncA.20program.20analysis.html">IncA program analysis</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="168309428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/IncA%20program%20analysis/near/168309428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tamas Szabo <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/IncA.20program.20analysis.html#168309428">(Jun 17 2019 at 13:19)</a>:</h4>
<p>hey guys! I am one of the developers of the IncA program analysis framework (<a href="https://github.com/szabta89/IncA" target="_blank" title="https://github.com/szabta89/IncA">https://github.com/szabta89/IncA</a>).  I met with Niko back in November at OOPSLA, and we had a chat about the Rust borrow checker implementation in Datalog. I was in contact recently with Frank McSherry, and he mentioned that custom lattices with aggregation may be something that is interesting for your use cases. These are not standard features in Datalog, but IncA does support them, and it does that incrementally, so that the analysis result can be kept up to date as the input changes. I am here to find out if this is really interesting to you. Cheers, Tamas</p>



<a name="168310821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/IncA%20program%20analysis/near/168310821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pachi <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/IncA.20program.20analysis.html#168310821">(Jun 17 2019 at 13:37)</a>:</h4>
<p><span class="user-mention" data-user-id="225591">@Tamas Szabo</span> I think you want to ping <span class="user-mention" data-user-id="116009">@nikomatsakis</span></p>



<a name="168314742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/IncA%20program%20analysis/near/168314742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/IncA.20program.20analysis.html#168314742">(Jun 17 2019 at 14:25)</a>:</h4>
<p><span class="user-mention" data-user-id="225591">@Tamas Szabo</span> I think he was referring to some extension ideas that we had, which needed to compute an equality relation which we propagate around. We've not thought too much yet about how to do that, but perhaps it is something that custom lattices might help with.</p>



<a name="168317771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/IncA%20program%20analysis/near/168317771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tamas Szabo <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/IncA.20program.20analysis.html#168317771">(Jun 17 2019 at 15:00)</a>:</h4>
<p>In any case, I would be interested to see your Datalog implemenation, if this is possible at all. Was that implemented in Souffle? We actually do have an importer in IncA that can import Souffle programs, so it would not be too hard to port your analysis.</p>



<a name="168345061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/IncA%20program%20analysis/near/168345061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/IncA.20program.20analysis.html#168345061">(Jun 17 2019 at 20:35)</a>:</h4>
<p>It lives at <a href="https://github.com/rust-lang/polonius" target="_blank" title="https://github.com/rust-lang/polonius">https://github.com/rust-lang/polonius</a></p>



<a name="168345199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/IncA%20program%20analysis/near/168345199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/IncA.20program.20analysis.html#168345199">(Jun 17 2019 at 20:37)</a>:</h4>
<p>You may find some of the <a href="https://www.youtube.com/playlist?list=PL85XCvVPmGQitE2CBzf-gERSqeXo59NQG" target="_blank" title="https://www.youtube.com/playlist?list=PL85XCvVPmGQitE2CBzf-gERSqeXo59NQG">youtube videos here</a> to be useful, <span class="user-mention" data-user-id="225591">@Tamas Szabo</span> -- otherwise, I'll try to answer questions. =) <a href="https://www.youtube.com/watch?v=i5KdU0ieb_A&amp;list=PL85XCvVPmGQitE2CBzf-gERSqeXo59NQG&amp;index=2&amp;t=0s" target="_blank" title="https://www.youtube.com/watch?v=i5KdU0ieb_A&amp;list=PL85XCvVPmGQitE2CBzf-gERSqeXo59NQG&amp;index=2&amp;t=0s">This talk in particular explains how datafrog works, kind of near the end</a>.</p>
<div class="youtube-video message_inline_image"><a data-id="i5KdU0ieb_A" href="https://www.youtube.com/watch?v=i5KdU0ieb_A&amp;list=PL85XCvVPmGQitE2CBzf-gERSqeXo59NQG&amp;index=2&amp;t=0s" target="_blank" title="https://www.youtube.com/watch?v=i5KdU0ieb_A&amp;list=PL85XCvVPmGQitE2CBzf-gERSqeXo59NQG&amp;index=2&amp;t=0s"><img src="https://i.ytimg.com/vi/i5KdU0ieb_A/default.jpg"></a></div>



<a name="168498838"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/IncA%20program%20analysis/near/168498838" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Frank McSherry <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/IncA.20program.20analysis.html#168498838">(Jun 19 2019 at 11:48)</a>:</h4>
<p>Super keen to learn about Datafrog! :D</p>
<p>(( Still planning on a Differential explainer, <span class="user-mention" data-user-id="116009">@nikomatsakis</span>, just .. all the things ... &gt;.&lt; ))</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>